From 6b865d53123c85f9d02b5a091435327a4dd7e464 Mon Sep 17 00:00:00 2001 From: William Hua Date: Tue, 7 Jan 2014 23:40:06 -0500 Subject: [PATCH] Add icon menu to bloatpad. https://bugzilla.gnome.org/show_bug.cgi?id=710351 --- examples/Makefile.am | 1 + examples/bloatpad.c | 72 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/examples/Makefile.am b/examples/Makefile.am index a02f4da304..f18b121711 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -10,6 +10,7 @@ AM_CPPFLAGS = \ -I$(top_builddir)/gdk \ -DGDK_DISABLE_DEPRECATED \ -DGTK_DISABLE_DEPRECATED \ + -DSRCDIR=\"$(abs_srcdir)\" \ $(GTK_DEBUG_FLAGS) \ $(GTK_DEP_CFLAGS) diff --git a/examples/bloatpad.c b/examples/bloatpad.c index fc2415e69d..90e9f33afd 100644 --- a/examples/bloatpad.c +++ b/examples/bloatpad.c @@ -493,6 +493,14 @@ bloat_pad_startup (GApplication *application) { BloatPad *bloatpad = (BloatPad*) application; GtkBuilder *builder; + GMenu *menu; + GMenuItem *item; + GIcon *icon; + GIcon *icon2; + GEmblem *emblem; + GFile *file; + gchar *data; + gsize size; G_APPLICATION_CLASS (bloat_pad_parent_class) ->startup (application); @@ -555,6 +563,9 @@ bloat_pad_startup (GApplication *application) " " " " " " + " " + " _Icons" + " " " " " Time" " app.time-active" @@ -571,6 +582,67 @@ bloat_pad_startup (GApplication *application) gtk_application_add_accelerator (GTK_APPLICATION (application), "m", "win.justify", g_variant_new_string ("center")); gtk_application_add_accelerator (GTK_APPLICATION (application), "r", "win.justify", g_variant_new_string ("right")); + menu = G_MENU (gtk_builder_get_object (builder, "icon-menu")); + + file = g_file_new_for_path (SRCDIR "/../gtk/stock-icons/16/help-about.png"); + icon = g_file_icon_new (file); + item = g_menu_item_new ("File Icon", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + g_object_unref (file); + + icon = g_themed_icon_new ("edit-find"); + item = g_menu_item_new ("Themed Icon", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + + if (g_file_get_contents (SRCDIR "/../gtk/stock-icons/16/list-add.png", &data, &size, NULL)) + { + GBytes *bytes = g_bytes_new_take (data, size); + icon = g_bytes_icon_new (bytes); + item = g_menu_item_new ("Bytes Icon", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + g_bytes_unref (bytes); + } + + icon = G_ICON (gdk_pixbuf_new_from_file (SRCDIR "/../gtk/stock-icons/16/gtk-preferences.png", NULL)); + item = g_menu_item_new ("Pixbuf", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + + file = g_file_new_for_path (SRCDIR "/../gtk/stock-icons/16/edit-paste.png"); + icon = g_file_icon_new (file); + emblem = g_emblem_new (icon); + g_object_unref (icon); + g_object_unref (file); + file = g_file_new_for_path (SRCDIR "/../gtk/stock-icons/16/edit-copy.png"); + icon2 = g_file_icon_new (file); + icon = g_emblemed_icon_new (icon2, emblem); + item = g_menu_item_new ("Emblemed Icon", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + g_object_unref (icon2); + g_object_unref (file); + g_object_unref (emblem); + + icon = g_themed_icon_new ("weather-severe-alert-symbolic"); + item = g_menu_item_new ("Symbolic Icon", NULL); + g_menu_item_set_icon (item, icon); + g_menu_append_item (menu, item); + g_object_unref (item); + g_object_unref (icon); + const gchar *new_accels[] = { "n", "t", NULL }; gtk_application_set_accels_for_action (GTK_APPLICATION (application), "app.new", new_accels); -- 2.30.2